import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state() {
    return {
      title:"VUE's time begin!（这是来自总数据仓库中的数据）",
      loginStatus: "用户已经登录",
      count: 0,
      data1:"数据仓库1号数据",
      data2:"数据仓库2号数据"
    }
  },
  getters: {
    len(state){
      return state.loginStatus.length;
    },
    getData(state){
      return state.data2;
    }
  },
  mutations: {
    changeCount(state, num) {
      state.count += num;
      console.log('mutation执行了,count值为:' + state.count);
    },
    getData(state,param){
      console.log('传入的参数为'+param+'公共仓库具有方法，通过方法获取数据:' + state.data1);
    },
    getDataAlert(state,param){
      alert('传入的参数为'+param+'公共仓库具有方法，通过方法获取数据:' + state.data1);
    }
  },
  actions: {
    delayChangeCount(store,num){
      setTimeout(()=>{
        console.log(199);
        store.commit('changeCount',num);
        console.log("数据仓库内部延迟方法监听属性获取数据:"+store.getters.getData);
      },3000);
    }
  },
  modules: {
  }
})
